home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-01-09 | 2.5 KB | 83 lines | [TEXT/PARZ] |
- START
- 79 PE
- 2 PORTS
- SCALAR I1 I1
- VECTOR I1 B3
- 1 : GOTO 33;
- 2 : PROC 1 VECTOR I1;
- POPV VI1:1;
- VI[VI1:1] := 0;
- PUSHV VI1:1;
- RETURN;
- 3 : PROC 1;
- ERROR "value out of range";
- RETURN;
- 4 : PROC 1
- SCALAR
- VECTOR I2 I1; group number 1
- PUSHV ADDR VI1:2;
- 5 : VI1:1 := ID - 1; for LIST calculating DIMi
- VI1:1 := VI1:1 + 1; DIM1
- 6 : VI1:3 := VI1:1 - 1;
- 7 : VI1:3 := VI1:3 - 1;
- 8 : VI1:2 := VI1:3;
- VI1:2 := VI1:2 + 1;
- IF VI1:3 < 0 CALL 2;
- IF VI1:3 > 78 CALL 2;
- CONNECT 1 TO 2 AT VI1:2;
- 9 : VI1:3 := VI1:1 + 1;
- 10 : VI1:3 := VI1:3 - 1;
- 11 : VI1:2 := VI1:3;
- VI1:2 := VI1:2 + 1;
- IF VI1:3 < 0 CALL 2;
- IF VI1:3 > 78 CALL 2;
- CONNECT 2 TO 1 AT VI1:2;
- 12 : POPV VI1:2;
- 13 : RETURN; group number : 1
- 14 : PROC 1; configuration : LIST
- VI0:1 := ID - 1; for LIST calculating DIMi
- VI0:1 := VI0:1 + 1; DIM1
- RETURN; configuration : LIST
- 15 : PROC 1
- SCALAR B79 I1 I3 ; OUT
- 16!15 : STORE VB0:1 TO SB1:1; line 15 column 2
- 17!16 : SI1:1 := 1; line 16 column 2
- 18 : SI1:2 := 79;
- 19!16 : IF SI1:1 > SI1:2 GOTO 31; line 16 column 2
- 20!17 : IF SI1:1 < 1 CALL 3; line 17 column 4
- 21 : IF 79 < SI1:1 CALL 3;
- 22 : SI1:3 := ADDR SB1:1 - SIZE( B1 );
- 23 : SI1:4 := SI1:1 * SIZE( B1 );
- 24 : SI1:3 := SI1:3 + SI1:4;
- 25 : IF SB[SI1:3] = FALSE GOTO 28;
- 26!17 : WRITE 'X'; line 17 column 17
- 27 : GOTO 29;
- 28!17 : WRITE ' '; line 17 column 33
- 29 : SI1:1 := SI1:1 + 1;
- 30 : GOTO 19;
- 31!19 : WRITE EOL; line 19 column 2
- 32!20 : RETURN; OUT
- 33 : CALL 4; connections
- 34!23 : CALL 14; line 23 column 2
- 35!24 : VB0:1 := FALSE; line 24 column 4
- 36!26 : CALL 14; line 26 column 2
- 37 : PARALLEL 00000000000000000000000000000000000000100000000000
- 00000000000000000000000000000;
- 38!27 : VB0:1 := TRUE; line 27 column 4
- 39!28 : PARALLEL 11111111111111111111111111111111111111111111111111
- 11111111111111111111111111111;
- 40!30 : SI0:1 := 1; line 30 column 2
- 41 : SI0:2 := 50;
- 42!30 : IF SI0:1 > SI0:2 GOTO 52; line 30 column 2
- 43!31 : CALL 14; line 31 column 4
- 44!32 : CALL 15; OUT line 32 column 6
- 45!33 : VB0:2 := VB0:1; line 33 column 6
- 46 : PROPAGATE VB0:2 OUT 1 IN 2;
- 47!34 : VB0:3 := VB0:1; line 34 column 6
- 48 : PROPAGATE VB0:3 OUT 2 IN 1;
- 49!35 : VB0:1 := VB0:2 <> VB0:3; line 35 column 6
- 50 : SI0:1 := SI0:1 + 1;
- 51 : GOTO 42;
- 52 : END; CELLULAR_AUTOMATON
- STOP
-